Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αccess 2003

Îåêßíçóå áðü ôï ìÝëïò stratos. Τελευταία δημοσίευση από το μέλος panagiotis_georgiadis στις 15-12-2010, 10:06. Υπάρχουν 10 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  12-12-2010, 14:50 61534

    Αccess 2003

    Καλησπερα στην κοινοτητα. :)

    Αντιμετωπιζω ενα προβλημα με την Access 2003. Εστω οτι εχω 2 πινακας (Βιβλια, Συγγραφεις) με τα εξης πεδια
    Βιβλια-->A/A,Τιτλος, Αρ. Σελιδων, Περιεχομενο
    Συγγαφεις--> ID, Ονομα, Επωνυμο

    Θελω να διαγραψω ενα συγγραφεα με π.χ. ID=5. Πως μπορω να  βρω ενα τροπο με τον οποιο στους υπολοιπους συγγραφεις να μειωυει το ID κατα 1, ωστε να μην εχω το κενο ID=5?
    Η σχεση μεταξυ των πινακων ειναι ''ενα προς πολλα'' (δηλαδη σε εναν συγγραφεα αντιστοιχουν πολλα βιβλια...). Προσπαθησα να διαγραψω την σχεση και να αλλαξω τα ID, αλλα οι εγγαφες στον πινακα ''Βιβλια'' δεν ενημερονονται. Εχω δημιουργησει και ενα ερωτημα ενημερωσης για τον πινακα 'Συγγραφεις'' ωστε να μειωνει κατα 1 τα ID, αλλα κατι κανω λαθος και δεν λειτουργει. Καμια βοηθεια?
    Ευχαριστω!
    Δημοσίευση στην κατηγορία: , ,
  •  13-12-2010, 10:13 61542 σε απάντηση της 61534

    Απ: Αccess 2003

    Το πρόβλημα που αντιμετωπίζεις κατά τη γνώμη μου (και όσο γνωρίζω από βασεις δεδομενων) δεν είναι στην ουσία πρόβλημα.
    Υποθέτω ότι το πεδίο ID είναι Autonumber, οπότε δίνεται αυτόματα καινούριος αριθμός από την Access για κάθε νέα εγγραφή που δημιουργείται στη βάση.
    Επίσης υποθέτω ότι του έχεις δώσει την ιδιότητα κλειδιού (Primary key), ώστε να μην υπάρχουν διπλο-εγγραφές.
    Δεν χρειάζεται λοιπόν να ενημερώνεις όλες τις εγγραφές κάθε φορά που σβήνεται μία. Είναι ένας μηχανισμός ασφάλειας της Access.
    Αυτό που φαντάζομαι θες είναι να πάρεις μια τιμή που να σου δίνει το πλήθος εγγραφών στη βάση. Αλλά αυτό δεν είναι καλή τακτική να το κάνεις με το να κοιτάς τιν τιμή του τελευταίου ID!
    Αυτό που θες μάλλον είναι ένα ερώτημα στο πλήθος εγγραφών του πίνακα Συγγραφεις.


    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
    Δημοσίευση στην κατηγορία: ,
  •  13-12-2010, 10:39 61545 σε απάντηση της 61542

    Απ: Αccess 2003

    Καλημερα.Το ID ειναι το primary key αλλα δεν το εχω ως autonumber. Διαγραφοντας μια εγγραφη το συγκεκριμενο ΙD μενει κενο (δεν ξερω αν το ειχα ως autonumber αν θα γινοταν αυτοματα η διαδικασια που περιγραφω παραπανω). Απλα θελω να καλυψω αυτο το ''κενο'' ωστε να μην μενουν κενα ID. :)
  •  13-12-2010, 10:55 61547 σε απάντηση της 61545

    Απ: Αccess 2003

    Μπορείς να θέσεις στο ID Field το Property "Required" σε Yes, ώστε να απαιτείται πάντα να υπάρχει τιμή. Αλλά νομίζω ότι αυτό είναι ήδη προεπιλεγμένο γιατί είναι primary key. Όταν λες ότι μένει κενό, να υποθέσω ότι π.χ. έχεις στους Συγγραφείς τις εγγραφές {1, 2, 3, 4, 5, 6}, και θες να σβήσεις την 5, οπότε σου μένει {1, 2, 3, 4, 6}. Όπως είπα αυτό δεν είναι πρόβλημα, αλλά εσύ θες να γίνουν οι εγγραφές {1, 2, 3, 4, 5} - δηλ. να γίνει η 6 -> 5. Δεν καταλαβαίνω τον λόγο. Εκτός αν δεν κατάλαβα το πρόβλημα. Τι εννοείς 'μένει κενό'?!?


    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
  •  13-12-2010, 11:03 61548 σε απάντηση της 61547

    Απ: Αccess 2003

    Ακριβως αυτο που περιγραφεις. Το ID=5 δεν υπαρχει πλεον και θελω ολα τα επομενα να μειωθουν κατα 1 (χωρις ωστοσο να δημιουργηθει προβλημα στον αλλο πινακα). Υπαρχει τροπος για να γινει? :/
  •  13-12-2010, 11:45 61551 σε απάντηση της 61534

    Απ: Αccess 2003

    Το πρόβλημα που αντιμετωπίζεις δεν είναι καν... πρόβλημα!! Αυτή είναι η σωστή συμπεριφορά!! Έχεις μία σχέση σ' αυτόν τον πίνακα. Φαντάζεσαι τι θα γινόταν αν είχες και άλλους πίνακες με relationships; Χαμός!! Το ID Key δεν εξυπηρετεί ανάγκες αισθητικής!! Είναι εκεί για να εξασφαλίζει ότι οι σχέσεις "λειτουργούν" σωστά. Οποιαδήποτε αναδιάταξη του key θα είχε ως αποτέλεσμα τον γενικό πανικό σ' όλους τους υπόλοιπους πίνακες που έχουν σχέση με τον parent. Απλά δέχεσαι ότι συμπεριφέρεται μ' αυτόν τον τρόπο και το ξεχνάς!! Άλλωστε, το ID είναι κάτι που το κρύβεις από τον χρήστη.

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  13-12-2010, 12:01 61552 σε απάντηση της 61551

    Απ: Αccess 2003

    Αυτό κατάλαβα κι εγώ!
    Όμως ο Στράτος μάλλον θέλει να κάνει κάτι παραπάνω με το ID και θέλει να το έχει σε αυτή τη μορφή. Αυτό που φαντάζομαι είναι ότι με μια ματιά στο ID θες να μπορείς να δεις πόσους Συγγραφείς έχεις καταχωρημένους. Αυτό όμως είναι λάθος στρατηγική σχεδίασης βάσης δεδομένων.
    Στο κάτω κάτω κάτι τέτοιο με ένα απλούστατο SQL/Linq Query μπορείς να το πάρεις...

    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
  •  14-12-2010, 09:30 61604 σε απάντηση της 61552

    Απ: Αccess 2003

    Εχω δημιουργησει ερωτηματα για να βλεπω ποσους συγγραφεις/ βιβλια, αθροισματα κτλ... Απλα πειτε το ως ''εμμονη'' να μην εχω κενα ID... :/
    Πως ακριβως μπορω να γραψω αυτο το query? Με ενα UPDATE query γινεται δουλεια? π.χ.

    UPDATE Συγγραφεις
    SET Συγγραφεις.ID = Συγγραφεις.ID -1
    WHERE Συγγραφεις.ID >5

    Να πω παλι οτι θα πρεπει να ενημερωθει και ο πινακας των βιβλιων ταυτοχρονα...
  •  14-12-2010, 10:02 61607 σε απάντηση της 61604

    Απ: Αccess 2003

    Προσωπική μου άποψη: Μην το κάνεις!

    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
  •  15-12-2010, 09:27 61657 σε απάντηση της 61607

    Απ: Αccess 2003

    Επειδη δεν ειμαι και καμια διανοια στο χειρισμο Β.Δ., θα ακολουθησω την συμβουλη σας. Διαγραφη και δεν θα αλλαξω τιποτα μιας και αν γινει καποιο λαθος με τις αντικαταστασεις θα εχω σοβαρο προβλημα απο οτι καταλαβαινω. Ευχαριστω για την βοηθεια! :)
  •  15-12-2010, 10:06 61658 σε απάντηση της 61657

    Απ: Αccess 2003

    όχι μόνο αποφεύγεις προβλήματα, λύνεις έτσι και το πρόβλημα του scalability.
    Δηλαδή στη συγκεκριμένη περίπτωση η ΒΔ σου έχει 2-3 πίνακες. Ας υποθέσουμε για μια στιγμή ότι γίνεται αυτό που θές (αναδιάταξη των εγγραφών με αυξανόμενο κατά ένα πάντα αριθμό ID), και οτι το κάνουμε. Αν στο μέλλον όμως αρχίσεις να βάζεις κι άλλους πίνακες, θα αρχίσει να γίνεται χαμός με τις σχέσεις τους, και τα UPDATE queries πρέπει πάντα να τα κρατάς φρέσκα και να τα συγχρονίζεις. Τσάμπα κόπος.-


    Panagiotis Georgiadis
    HBM Netherlands B.V.
    www.twitter.com/HimWithCurls
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems